package com.tanqing.ddd.domain.aggregate;


import com.tanqing.ddd.domain.aggregate.dto.ParktingParamsDto;
import com.tanqing.ddd.domain.command.CheckOutCommand;
import com.tanqing.ddd.domain.command.CheckinCommand;
import com.tanqing.ddd.domain.command.NotifyPayCommand;
import com.tanqing.ddd.domain.domain.DomainException;
import com.tanqing.ddd.domain.event.EventQueue;

import java.math.BigDecimal;
import java.util.Date;

public interface Parkting {
    public ParktingParamsDto getParams();

    public boolean handle(EventQueue eventQueue, CheckinCommand command);

    BigDecimal calculateFeeNow(Date date);


    public boolean handle(EventQueue eventQueue, NotifyPayCommand command) throws DomainException;

    boolean handle(EventQueue eventQueue, CheckOutCommand command);
}
